package com.itheima.controller;

import com.itheima.dto.PageTag;
import com.itheima.dto.YddTagDTO;
import com.itheima.entity.YddTag;
import com.itheima.result.PageData;
import com.itheima.result.R;
import com.itheima.service.YddTagService;
import com.itheima.vo.YddTagVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @projectName: kafka
 * @package: com.itheima.controller
 * @className: YddTagController
 * @author: Eric
 * @description: TODO
 * @date: 2023/9/23 19:18
 * @version: 1.0
 */
@Slf4j
@RestController
@RequestMapping("/ydd_tag")
@AllArgsConstructor
public class YddTagController {
    private final YddTagService yddTagService;

    /**
     * pag
     *
     * @param pageTag 页面标签
     * @return {@link R}<{@link PageData}>
     */
    @GetMapping("/list")
    public R<PageData> pag(PageTag pageTag){
        PageData pageData = yddTagService.pag(pageTag);
        return R.success(pageData);
    }

    /**
     * 查询所有标签
     *
     * @return {@link R}<{@link List}<{@link YddTagVO}>>
     */
    @GetMapping("/all")
    public R<List<YddTagVO>> queryAllTag(){
        List<YddTagVO> yddTagVOList = yddTagService.queryAllTag();
        return R.success(yddTagVOList);
    }

    /**
     * 创建标签
     *
     * @param yddTagDTO ydd标签d去
     * @return {@link R}
     */
    @PostMapping("/add")
    public R<?> creatTag(@RequestBody YddTagDTO yddTagDTO){
        yddTagService.creatTag(yddTagDTO);
        return R.success();
    }

    /**
     * 删除标签
     *
     * @param id id
     * @return {@link R}<{@link ?}>
     */
    @GetMapping("/del")
    public R<?> deleteTag(Integer id){
        yddTagService.deleteTag(id);
        return R.success();
    }

    /**
     * 查询标签
     *
     * @param id id
     * @return {@link R}
     */
    @GetMapping("/rowInfo")
    public R<YddTagVO> queryTag(Integer id){
        YddTagVO yddTagVO = yddTagService.queryTag(id);
        return R.success(yddTagVO);
    }

    /**
     * 更新标签
     *
     * @param yddTag ydd标签
     * @return {@link R}<{@link ?}>
     */
    @PostMapping("/update")
    public R<?> updateTag(@RequestBody YddTag yddTag){
        yddTagService.updateTag(yddTag);
        return R.success();
    }
}
